C++ – 对std::vector存储的结构体按照结构体内某个成员进行升序排序和降序排列
1 C++对stdvector内存储的结构体按照结构体内某个成员进行升序排序和降序排列 假设有一个Person结构体 struct Person { std::string name; int age; int score; Person(const std::string& name_in…
- C++
- 2023-12-01
C++ – std::vector初始化方式总结
本文将简单总结下std::vector初始化的几种方式。 1 std::vector初始化 1.1 使用值初始化std::vector #include<iostream> #include <vector> int main() { std::vector<int&g…
- C++
- 2023-08-21
C++ – 获取std::vector中的最小值、最大值以及对应的索引
1 获取std::vector中的最小值、最大值以及对应的索引 1.1 普通方法 普通方法就是遍历std::vector,对vector中的值进行一一对比,找出最小值、最大值及其对应的索引,示例代码如下 #include <iostream> #include <vector>…
- C++
- 2023-03-23
C++ – std::unordered_map中使用结构体或者vector等复杂的数据结构作为Key值
1 std::unordered_map中使用结构体或者vector等复杂的数据结构作为Key值 1.1 std::vector作为Key C++11中引入了unordered_set和unordered_map,其内部数据结构实现没有使用map和set中的红黑树,而是使用的哈希表。如果我们在uno…
- C++
- 2023-01-05
C++STL容器 – std::vector容器修改、元素操作总结 push_back,emplace_back,emplace,insert,erase,pop_back,clear,resize,swap
1 std::vector操作函数 1.1 push_back push_back的作用主要是将给定值添加到容器末尾。 pusk_back在执行压入操作时需要初始化一个新的元素,然后再将给定值拷贝到新元素中。 std::vector<int> myVector; PrintVector(…
- C++
- 2022-02-25
C++STL容器 – std::vector元素访问方式总结
1 std::vector元素访问方式 std::vector提供多种方式访问容器中的元素。std::vector的at函数,[]操作符,front函数,back函数都可以对std::vector的元素进行读写操作。 1.1 at函数 访问指定索引元素,并在访问时进行索引边界检查。如果索引越界,将抛…
- C++
- 2022-02-22
C++STL容器 – std::vector构造方式与分配值方式总结
1 std::vector std::vector是可动态调整大小的序列容器,可以根据需要自动进行增加内存或者减少内存。相比于静态数组,std::vector占用更多的内容空间,主要是为了分配更多的内存空间用于未来元素增加所带来的内存消耗。一般来说,std::vector的所占内存大小不会在每次压入…
- C++
- 2022-02-22
C++ – 将std::vector中的数值拷贝到数组中
1 将std::vector中的数值拷贝到数组中 在程序实际运行过程中,为了防止数组越界经常使用stl 容器,但是在做数据交换时经常需要传递数据流的指针,这个时候就需要将stl 容器中的数据拷贝到数组中,当然,只针对int float double这种常规类型的数据。 #include <io…
- C++
- 2022-01-10
OpenCV – cv::Mat与unsigned char*数组或者float*数组相互转换,cv::Mat与std::vector的相互转换
1 使用常规方法将cv::Mat转换为unsigned char数组或者float数组 通常情况下,在同一个opencv项目传递cv::Mat可直接通过const cv::Mat& img这种方式传递,但是如果需要进行跨语言传递,比如C++传递到C#或者C#传递到C++,那么通常这种情况下需…
- OpenCV
- 2021-10-14